﻿namespace Itau.IM.Common.Mainframe.Book
{
    /// <summary>
    /// Classe responsável pela leitura de books retornados pelo Mainframe
    /// </summary>
    public class BookReader
    {
        #region Atributos

        private string _text;
        private int _position;

        #endregion Atributos

        #region Métodos

        /// <summary>
        /// Construtor
        /// </summary>
        /// <param name="text_">Texto do Book</param>
        public BookReader(string bookText_)
        {
            _text = bookText_;
            _position = 0;
        }

        /// <summary>
        /// Método responsável por mover o cursor de leitura
        /// </summary>
        /// <param name="length_">Quantidade de posições</param>
        public void Move(int length_)
        {
            _position += length_;
        }

        /// <summary>
        /// Método responsável por ler parte do book e mover o cursor
        /// </summary>
        /// <param name="length_">Quantidade de posições</param>
        /// <returns>Texto do book</returns>
        public string Read(int length_)
        {
            string temp = _text.Substring(_position, length_);

            Move(length_);

            return temp;
        }

        #endregion Métodos
    }
}